package com.hzhr.iot.collect.constant;

public enum FunctiontmpEnum {
	TMP1(1, "9033","WTCU采集信息自醒上报", 10000071),
	TMP2(2, "9001","WTCU注册", 10000071),
	TMP3(3, "9011","WTCU主站IP设置", 10000060),
	TMP4(4, "9012","WTCU主站IP查询", 10000060),
	TMP5(5, "9015","WTCU自醒上报时间设置", 10000060),
	TMP6(6, "9016","WTCU自醒上报时间查询", 10000060),
	TMP7(7, "9041","WTCU开阀", 10000060),
	TMP8(8, "9042","WTCU关阀", 10000060),
	TMP9(9, "9034","WTCU表具信息主动上报", 10000071),
	TMP10(10, "9013","NBIOT 物联网表上报周期设置", 10000060),
	TMP11(11, "9014","NBIOT 物联网表上报周期查询", 10000060),
	TMP12(12, "9021","NBIOT 物联网表冻结日设置", 10000060),
	TMP13(13, "9022","NBIOT 物联网表冻结日查询", 10000060),
	TMP14(14, "9031","NBIOT 物联网表日用量历史查询", 10000060),
	TMP15(15, "9032","NBIOT 物联网表月用量历史查询", 10000060),
	TMP16(16, "9051","NBIOT 物联网表异常事件上传", 10000071),
	TMP17(17, "9052","NBIOT 物联网表故障信息清除指令", 10000060),
	TMP18(18, "9053","NBIOT 物联网表异常事件查询", 10000060),
	TMP19(19, "9043","NBIOT 允许开阀", 10000060),
	TMP20(20, "9035","NB-IoT燃气表累积用量查询", 10000060),

	TMP21(21, "1004","DTU 注册包", 10000071),
	TMP22(22, "1001","DTU 生产通讯测试", 10000071),
	TMP23(23, "1002","DTU 通信测试", 10000071),
	TMP24(24, "1003","DTU 心跳包", 10000071),
	TMP25(25, "1011","DTU 心跳周期设置", 10000060),
	TMP26(26, "1012","DTU 心跳周期查询", 10000060),
	TMP27(27, "1015","DTU 时钟设置", 10000071),
	TMP28(28, "1016","DTU 时钟查询", 10000071),
	TMP29(29, "1013","DTU 集频率设置", 10000060),
	TMP30(30, "1014","DTU 采集频率查询", 10000060),
	TMP31(31, "1017","DTU 上报时间设置", 10000060),
	TMP32(32, "1018","DTU 上报时间查询", 10000060),
	TMP33(33, "1023","DTU 表具时钟设置", 10000060),
	TMP34(34, "1024","DTU 表具时钟查询", 10000060),
	TMP35(35, "1042","DTU 单表抄表", 10000060),
	TMP36(36, "1043","DTU 主动上报", 10000071),
	TMP37(37, "1051","DTU 单表开阀", 10000060),
	TMP38(38, "1052","DTU 强制关阀", 10000060),
	TMP39(39, "1053","DTU 强制关阀", 10000060),
	TMP40(40, "1062","DTU 表具异常事件上传", 10000071),
	TMP41(41, "1063","DTU 异常指令清除指令", 10000071),

	TMP42(42, "01","压力监测仪 注册", 10000071),
	TMP43(43, "10","压力监测仪 请求更新运行参数", 10000071),
	TMP44(44, "11","压力监测仪 主站 IP 设置", 10000060),
	TMP45(45, "12","压力监测仪 密钥更新", 10000060),
	TMP46(46, "13","压力监测仪 设置设备编号", 10000060),
	TMP47(47, "14","压力监测仪 设置报警阈值", 10000060),
	TMP48(48, "15","压力监测仪 设置采样频率", 10000060),
	TMP49(49, "16","压力监测仪 设置上报周期", 10000060),
	TMP50(50, "17","压力监测仪 设置自醒时间", 10000060),
	TMP51(51, "21","压力监测仪 参数查询", 10000060),
	TMP52(52, "31","压力监测仪 昨日历史数据查询", 10000060),
	TMP53(53, "32","压力监测仪 自动上报", 10000071),
	TMP54(54, "33","压力监测仪 手动上报", 10000071),
	TMP55(55, "41","压力监测仪 压力监测仪异常事件上传", 10000071),
	TMP56(56, "42","压力监测仪 压力监测仪异常信息清除指令", 10000060),
	TMP57(57, "43","压力监测仪 压力监测仪异常事件查询", 10000060),

	TMP58(58, "2003", "集中器 心跳包", 10000071),
	TMP59(59, "2004", "集中器 注册包", 10000071),
	TMP60(60, "2011", "集中器 集中器心跳周期设置", 10000060),
	TMP61(61, "2012", "集中器 集中器心跳周期查询", 10000060),
	TMP62(62, "2015", "集中器 集中器时钟设置", 10000060),
	TMP63(63, "2016", "集中器 集中器时钟查询", 10000060),
	TMP64(64, "2042", "集中器 单表实时抄表", 10000060),
	TMP65(65, "2051", "集中器 单表开阀", 10000060),
	TMP66(66, "2052", "集中器 单表关阀", 10000060),
	TMP67(67, "2053", "集中器 阀门状态查询", 10000060),

	TMP68(68, "9010","NB-IoT 燃气表设备编号设置", 10000060),

	TMP69(69, "1025","DTU 表具初始值与脉冲当量设置", 10000060),
	TMP70(70, "1026","DTU 表具初始值与脉冲当量查询", 10000060),

	TMP71(71, "2033","集中器 增加下级智能表", 10000060),
	TMP72(72, "2034","集中器 删除下级智能表", 10000060),
	TMP73(73, "2036","集中器 下级表具查询", 10000060),
	TMP74(74, "2041","集中器 获取集抄数据", 10000060),

	TMP77(77, "2041","集中器 集中器重启", 10000060),
	TMP86(86, "2041","集中器 集中器异常事件上传", 10000071),
	TMP87(87, "2041","集中器 表具异常事件上传", 10000071);


	private Integer id;
	private String functionCode;
	private String name;
	private Integer starter;
	private FunctiontmpEnum(Integer id, String functionCode, String name, Integer starter) {
		this.id = id;
		this.functionCode = functionCode;
		this.name = name;
		this.starter = starter;
	}
	
	public Integer getId() {
		return id;
	}
	public String getFunctionCode() {
		return functionCode;
	}
	public String getName() {
		return name;
	}
	public Integer getStarter() {
		return starter;
	}
	
	public static FunctiontmpEnum getEnumByFunctionCode(String functionCode) {
		for (FunctiontmpEnum functiontmpEnum : FunctiontmpEnum.values()) {
			if (functiontmpEnum.getFunctionCode().equals(functionCode)) {
				return functiontmpEnum;
			}
		}
		return null;
	}
}
